/**
 * 泛型就是解决 类 接口 方法的复用性 以及对不特定数据的支持（类型校验）
 * 只能返回String 类型的数据
 * 
 */
//泛型前面用任意字母代替


abstract class Cache<T>{
  getByKey(int key);
  void setByKey(int key,T value);
}
class FileCache<T> implements Cache<T>{
   @override
  getByKey(int key){
    return null;
  }
   @override
  setByKey(int key,T value){
    print("key:$key value:$value");
  }
}

class MemoryCache<T> implements Cache<T>{
   @override
   getByKey(int key){
    return key;
  }
   @override
  setByKey(int key,T value){
    print("key:$key value:$value");
  }
}
main(){
 MemoryCache m = new MemoryCache<String>();
 m.setByKey(123, "测试");
 num numb = m.getByKey(12356);
 print(numb);
//  m.getByKey(123);
}